/**
 * Animal - 基类 父类
 * 包含抽象方法的类 必须声明为抽象类 关键字 abstract
 */
public abstract class Animal {
  // 抽象类可以包含成员属性
  private String color;
  private int age;

  // 构造器
  public Animal() {
  }

  public Animal(String color, int age) {
    this.color = color;
    this.age = age;
  }

  // 成员方法
  // 因为这两个成员方法没有具体的实现，所以声明为抽象方法
  public abstract void eat();

  public abstract void sleep();

  // 重写 Object toString
  @Override
  public String toString() {
    String str = "这个动物的颜色是：" + this.color + "，年龄是" + this.age;
    return str;
  }
}